This invention relates to an information handling system typically represented by a personal computer and a method of controlling the same and, particularly, to an information handling system of a type which implements a low power consumption technology which causes the system to enter a state in which a task under execution is interrupted upon occurrence of a predetermined event with the operation of the system halted almost completely and a method of controlling such information handling system. More particularly, this invention relates to an information handling system of a type which shifts to a low power consumption mode after saving the system conditions in an external storage device such as a hard disk and restores the original operation mode by restoring the saved conditions and which is capable of saving the system conditions without destructing user data existing on the external storage device, and a method of controlling such information handling system.
Along with recent technological revolution, various types of personal computers (PC) including a desk top type, a tower type and a notebook type have been developed and sold. Among them, the desk top PC is characterized in that the size is relatively large, the weight is relatively heavy and it is installed for use in a fixed place in an office or home. A notebook PC is designed and manufactured in a small size and a light weight in consideration of use in a mobile environment, that is, portable use in outdoor or a place where it is brought out. A typical example of a notebook PC is xe2x80x9cIBM ThinkPad 770xe2x80x9d series (trademark of International Business Machines Corporation) sold by IBM Japan Co., Ltd.
As well known, a notebook PC is of a xe2x80x9cclam shell structurexe2x80x9d comprising a system unit which internally installs a system board and a lid which is pivotally attached to a substantially rear edge of the unit (refer to FIG. 6). A keyboard unit is disposed as an input device on the top surface of the system unit while a liquid crystal display is disposed as an output device substantially in the middle of the inside of the lid. When a notebook PC is used, the lid is opened from the system unit to allow the display and the keyboard to be usable. On the other hand, the lid is closed to the system unit when the notebook PC is not used or is transported to hide the display and the keyboard for protecting them from an external impact. The PC can install a hard disk drive (HDD), a floppy disk drive (FDD) and a CD-ROM drive as an external storage device. These drives are typically formed in a shape of a package so as to allow them to be attached, detached and exchanged at will.
Almost all PCs are of a xe2x80x9cbattery drivenxe2x80x9d type which can be driven by an internal battery. This is in consideration of a use in a mobile environment where a commercial power is not available. A battery internally installed in a notebook PC is generally in a form of a xe2x80x9cbattery packxe2x80x9d which contains a plurality of secondary battery cells such as Li-Ion, NiCd and NiMH cells. Such battery pack is typically of several hundreds grams of weight and has 4-12 volts output voltage.
The popularization and performance of a battery driven equipment depend on the effective utilization of a battery. Taking a battery pack of a notebook PC for example, it takes 2-3 hours to charge the pack despite the charged capacity is only enough to supply no more than 2-3 hours at most of computer processing time. Such a long charging time is a problem in using a battery driven equipment and this leads to a necessity for a user to have to carry a plurality of spare battery packs.
In view of the above, a technology of reducing power consumption has been researched and developed to extend the length of durable time of a battery as long as possible and have been employed in a battery driven equipment like a notebook PC.
Also, from a social ecological view point of limited resources, a demand for saving power consumption has been recently emphasized even for an electronic equipment which can be fed from a commercial power source unlimitedly. For example, the US Environment Protection Agency (EPA) publicized a self imposed regulation of saving power consumption called xe2x80x9cEnergy Star Computer Programxe2x80x9d in June 1993. This regulation requires that the power consumption of a PC in a stand-by state is below a given criteria (driving power is no more than 30 watts or 30% of a power in operation of a PC). From this reason, computer manufacturers have been competing in implementing a power save technology even in a desk top PC.
Among the various technologies of reducing power consumption for electronic equipments, one applied to a PC may be called xe2x80x9cpower managementxe2x80x9d.
The principal mechanism of the power management is to put a hardware which need not be driven to a power save mode or to stop feeding depending on the activity of a computer system (hereinafter may be simply referred to a xe2x80x9csystemxe2x80x9d). Example of the power management includes xe2x80x9cLCD offxe2x80x9d, xe2x80x9cHDD offxe2x80x9d and xe2x80x9cCPU slow clock/clock downxe2x80x9d.
xe2x80x9cLCD offxe2x80x9d stops feeding an LCD or a back light thereof in the absence of an input from the keyboard or a mouse over more than a predetermined length of time. xe2x80x9cHDD offxe2x80x9d stops feeding circuits inside a HDD unit depending on the length of time measured from the latest disk access and is described in the specification of U.S. Pat. No. 4,933,785, for example. Because the back light of LCD and a drive motor of HDD occupy a large percentage of the total power consumption of a system, xe2x80x9cLCD offxe2x80x9d and xe2x80x9cHDD offxe2x80x9d contribute largely to power saving.
xe2x80x9cCPU slow clockxe2x80x9d and xe2x80x9cCPU clock downxe2x80x9d reduce the power consumption of the CPU by lowering the operating frequency of the CPU or stopping the clock completely during a stand-by time of the CPU (when there is no key/mouse input from a user over more than a predetermined length of time, for example). Because the processing capability of a CPU has been greatly enhanced while, on the other hand, the power consumption and heat generation of the CPU tend to increase due to the increasing speed of the CPU recently, xe2x80x9cCPU slow clock/clock downxe2x80x9d gives a significant technical merit. Incidentally, xe2x80x9cCPU slow clock/clock downxe2x80x9d is disclosed, for example, in the specification of Japanese patent application 7-278904 (PUPA 9-128106, Applicant Docket No. JA995100) assigned to the applicant of the present patent application.
The above described xe2x80x9cLCD offxe2x80x9d, xe2x80x9cHDD offxe2x80x9d and xe2x80x9cCPU slow clock/clock downxe2x80x9d, etc., reduce power consumption by halting a part of hardwares within the system while the rest of the hardwares continue to consume electric power. However, if feeding to the system can be almost completely stopped, it is needless to say that the effect of reduced power consumption will be further improved. In the case of chargeable battery, degradation of the battery may be induced if the battery continues to be discharged in a xe2x80x9clow batteryxe2x80x9d condition in which the remaining capacity is below a predetermined value. It is therefore desirable to completely stop feeding to the system when the battery is in a low battery condition.
So called xe2x80x9chibernationxe2x80x9d is a power management technology which enables feeding to the system to be completely stopped. The system is triggered to shift to a hibernation state by interrupting a task under execution when a key/mouse input or the activity of I/O device is not detected over more than a predetermined length of time or the battery is in a low battery state. Restoration of a system from the hibernation mode is called xe2x80x9cwake upxe2x80x9d. The xe2x80x9cwake upxe2x80x9d restores the system to an original state to resume the task and is distinguished from the usual power-on (POR: Power on Reset) which resets the state of the system.
In order to resume the task by wake up, that is, to restore the state of the system at the point of time when the task was interrupted, it is necessary to save the state of the system before it enters a hibernation mode. The state of the system as meant here in this specification includes information of the content of a volatile memory such as a main memory and a VRAM as well as a value in registers of the CPU and I/O devices and a context of hardware such as a count value of a timer. By returning saved data to the original places during wake up, the state of the system is restored. The information which is saved for restoring the state will be hereinafter referred to xe2x80x9chibernation informationxe2x80x9d.
Taking into consideration the fact that power feeding to all hardwares in the system is stopped in the hibernation mode, it is preferable that the place of saving the hibernation information is a non-volatile storage location like a hard disk. It is thus necessary to reserve a dedicated area on the hard disk for saving the hibernation information.
As one of the approach to reserving an area on the hard disk, a partition dedicated to the hibernation information may be preserved on the hard disk. Alternatively, the area saving the hibernation information may be a xe2x80x9chibernation filexe2x80x9d which is managed by a file system of the OS (operating system). The xe2x80x9chibernation filexe2x80x9d is allocated in a user partition on the hard disk as one of files in a same level as a user file.
The partition is fixed once it is partitioned and the partition size can not be changed unless it is partitioned again. On the other hand, in the latter approach, reservation of the saving area may be dynamically changed by the file system of the OS. For example, even when the size of the entire hibernation information is increased as a result of adding a capacity to the main memory, reservation can be managed simply by allocating again the hibernation file by the file system in the latter approach. It is considered that the latter approach is advantageous when considering the possibility of extending the capacity of the memory up to 256 MB from the standard 32 MB memory (the memory size may possibly vary in a wide range) by inserting a SIMM (Single Inline Memory Module) card or a DIMM (Dual Inline Memory Module) card in a predetermined socket of the system board particularly in a recent PC. A method of saving the state of the system in a hibernation file is disclosed, for example, in a Japanese patent application 5-184186 (PUPA 7-84848: Applicant Docket No. JA993020) assigned to the applicant of the present patent application.
In the case of a computer system supporting hibernation/wake-up processing, the system power is shut down by entering the hibernation mode in addition to a normal power off operation (typically by operating a power switch).
The hibernation mode is a state in which the operation is frozen with the system state saved and is clearly distinguished from a power off state. When powering the system on, a normal POR processing runs if the system is in a power off state. Whereas, if the system is in a hibernation mode, a wake up processing which is accompanied with restoration of the saved information has to be executed. Accordingly, in entering the hibernation mode, information indicating that the system is in the hibernation mode (that is, the history that the system is powered off with the state saved) is left in some place in the system. Such information will be hereinafter referred to xe2x80x9chibernation signaturexe2x80x9d. The system, when powered on, can determine which of wake up and POR to be executed depending on whether the hibernation signature has been set or not.
The place where the hibernation signature is stored may be any place to which the system can get an access upon power on. For example, the place may be on a hard disk or in a non volatile memory (NVRAM: for example, a CMOS memory which is backed up by a reserve battery). However, the hibernation signature has to be also saved on a hard disk along with the hibernation information when xe2x80x9cremote wake upxe2x80x9d is to be executed.
The term xe2x80x9cremote wake upxe2x80x9d as used here in this specification means that the state of the system is saved in a detachable HDD to enter a hibernation mode on one computer system and then the HDD is detached from the computer system and attached to another computer system to wake up the system*. With xe2x80x9cremote wake upxe2x80x9d, the state of a task immediately before entering the hibernation mode can be restored between a plurality of remote systems only by detaching and exchanging the HDD unit. For example, this would provide a big merit from the view point of TCO (Total Cost of Ownership) for a large scale user (generally, an enterprise) who installs a large number of systems of a same configuration. However, the computer system to which the HDD is attached is unable to know of a hibernation mode unless the hibernation signature is placed on a same hard disk in which the hibernation information is placed. In other words, the computer system is unable to wake up despite the state of the system is exchanged.
By having the hibernation information accompanied with the hibernation signature, the advantage of xe2x80x9cremote wake upxe2x80x9d is enjoyed. However, there are some points which should be kept in mind in storing the hibernation signature on a hard disk. One of the points is the storage location on the hard disk.
The system has to determine which of a POR processing and a wake up processing should be executed by the system immediately after power on. In other words, a hibernation signature is needed before the OS is loaded in a memory. Therefore, when a hibernation signature is stored on a hard disk, it has to be stored in a place (cylinder) which can be located without using the file system of the OS. For example, in the above cited patent application 5-184186 (PUPA 7-84848), the hibernation signature is to be saved in a predetermined position on the hard disk (more specifically, in a xe2x80x9cCE cylinderxe2x80x9d defined in the innermost track).
Another point is to avoid the hibernation signature written in a predetermined cylinder of a hard disk from interfering effective data already existing on the same cylinder.
In a system in which the file system of the OS gets an access to the disk** via a BIOS (Basic I/O System), a cylinder for saving the hibernation signature may be reserved by masking it by the BIOS. For example, the innermost cylinder of a hard disk has the largest address value. Therefore, the disk BIOS can hide the CE cylinder from a user access by answering a smaller disk size to an inquiry from the file system of the OS. The OS file system has no way to write user data in the CE cylinder even the existence of which is unknown to the file system so that the user data would never interfere the hibernation signature.
A BIOS is generally provided to an end user by being permanently written in a ROM (Read Only Memory) on the system board by a manufacturer or a seller of a computer system. If a cylinder for a hibernation signature can be reserved by a function of the BIOS, an interference between user data and the hibernation signature can be avoided without having the end user and a software (OS) vendor being aware of it. Also, manufacturers and sellers of a computer system will be able to firmly guarantee a series of operations in hibernation and wake up of the system.
However, there are operating systems which get an access directly to a hard disk without going through the BIOS among recent operating systems (that is, a device driver in the OS issues an I/O command to the disk without calling the BIOS). An example of such OS is xe2x80x9cOS/2xe2x80x9d (trademark of International Business Machines Corporation) sold by International Business Machines Corporation. The BIOS can not hide any cylinder on the disk for the file system of such OS because the hard disk itself has no way but honestly answer to an I/O command which is an immediate hardware operation and is not provided with an architecture to reserve a specific cylinder.
The file system of an OS of a type which has an immediate access to a hard disk can get an access to a cylinder which the BIOS has masked. In such OS environment, user data may have been possibly written in the cylinder for the hibernation signature. If this is the case, writing a hibernation signature in the specified cylinder would destruct user data originally existing there in entering the hibernation mode. In such case, the system will be able to wake up by having written a hibernation signature. However, any lost user data can not be restored so that the system would malfunction when an application using such user data portion is started.
It is a manufacturer or a seller of a computer system who provides hibernation/wake-up technology. Such manufacturer and seller are generally different from vendors of OS. The morphology and policy of use of a hard disk vary from OS to OS and it is almost impossible to make an agreement as to the place where the hibernation signature is stored between the manufacturers/sellers and vendors of OS.
The reliability of a system is lost with destruction of even a very small portion of user data. The manufacturers and the sellers will not be free from being blamed of failure to assure the operation of the system.
It will be readily understood that the hibernation file is allocated on the disk so as not to interfere with other user data because it is managed by the file system of the OS.
A computer system which wakes up by the remote wake up must have a same system configuration as the computer system which entered the hibernation mode. In other words, the system has a same size of memory and a same kind and number of I/O devices, and the I/O devices have to share a same system resource.
An application and OS can call the BIOS by issuing an INT command. For example, IBM PC/AT compatible machines (PC/AT is a trademark of International Business Machines Corporation) are generally so designed as to call a disk I/O routine in the BIOS using an INT 13 command.
It is an object of this invention to provide an improved information handling system and a method of controlling the same which implements a low power consumption technology in which a task under execution is interrupted upon occurrence of a predetermined event and a state of almost completely stopping the system operation (i.e., low power consumption mode) is entered.
It is another object of this invention to provide an improved information handling system and a method of controlling the same which saves the system state in an external storage device such as a hard disk to shift to a low power consumption mode and returns to the original operation mode by restoring the saved state.
It is a further object of this invention to provide an information handling system which is capable of saving the system state without destructing other user data on the external storage device and a method of controlling the same.